package com.gosophia.oa.test.functional;

import org.junit.Test;

import com.gosophia.oa.test.CustomSeleneseTestCase;

public class FTDataReporting extends CustomSeleneseTestCase {

	@Override
	public void setUp() throws Exception {
		super.setUp("http://localhost:8080/");
	}

	@Override
	public void tearDown() throws Exception {
		if (selenium != null)
			selenium.close();
		super.tearDown();
	}

	@Test
	public void testReportingInitiationPage() {
		// 登录
		selenium.open("/OA/");
		selenium.type("j_username", "admin");
		selenium.type("j_password", "admin");
		selenium.click("loginBtn");
		selenium.waitForPageToLoad("10000");

		// 进入发起页面
		selenium.click("link=报送发起");
		selenium.waitForPageToLoad("10000");
		assertPageTitle("北京市电子行政监察平台-发起数据报送任务", onPage("报送发起页面"));
		// 验证页面元素
		String[] pageElementTexts = {
				"报送任务名称",
				"重要度",
				"任务计划结束日期",
				"任务描述",
				"报送开始日期",
				"报送结束日期",
				"报送人",
				"报送方式", "上传附件", "填写表单",
				"报送要求",
				"相关附件"
				};
		verifyPresenceOfTexts(pageElementTexts, onPage("报送发起页面"));

	}
	
	@Test
	public void testReportingApprovalPage() {
		// 登录
		selenium.open("/OA/");
		selenium.type("j_username", "admin");
		selenium.type("j_password", "admin");
		selenium.click("loginBtn");
		selenium.waitForPageToLoad("10000");

		// 进入列表页面
		selenium.click("link=报送审核");
		selenium.waitForPageToLoad("10000");
		assertPageTitle("北京市电子行政监察平台-数据报送审核", onPage("报送审核列表页面"));
		// 等待列表刷新完成
		waitForAppearanceOfElement("//div[@id='dataTable']/table", 10000);
		// 验证页面元素
		String[] listPageElementTexts = {
				"报送审核",
				"任务编号",
				"报送任务名称",
				"报送人",
				"任务计划结束日期",
				"重要度",
				"报送状态",
				"操作",
				"首页", "尾页",
				};
		verifyPresenceOfTexts(listPageElementTexts, onPage("报送审核列表页面"));

		// 进入审核处理页面
		selenium.click("link=审核");
		selenium.waitForPageToLoad("10000");
		assertPageTitle("北京市电子行政监察平台-数据报送审核", onPage("审核处理页面"));
		// 验证页面元素
		String[] approvalPageElementTexts = {
				"审核",
				"报送信息",
				"报送日期",
				"报送人",
				"报送内容",
				"报送说明",
				"审核意见",
				"任务信息",
				"报送任务名称",
				"任务编号",
				"报送开始日期",
				"报送结束日期",
				"任务要求",
				"报送要求",
				"相关文件",
				};
		verifyPresenceOfTexts(approvalPageElementTexts, onPage("审核处理页面"));
	
	}

	@Test
	public void testReportingDataPage() {
		// 登录
		selenium.open("/OA/");
		selenium.type("j_username", "admin");
		selenium.type("j_password", "admin");
		selenium.click("loginBtn");
		selenium.waitForPageToLoad("10000");

		// 进入列表页面
		selenium.click("link=报送数据");
		selenium.waitForPageToLoad("10000");
		assertPageTitle("北京市电子行政监察平台-数据报送", onPage("报送数据列表页面"));
		// 等待列表刷新完成
		waitForAppearanceOfElement("//div[@id='dataTable']/table", 10000);
		// 验证页面元素
		String[] listPageElementTexts = {
				"报送数据",
				"任务编号",
				"上报任务名称",
				"发起人",
				"上报结束日期",
				"重要度",
				"状态",
				"操作",
				"首页", "尾页",
				};
		verifyPresenceOfTexts(listPageElementTexts, onPage("报送数据列表页面"));

		// 进入报送处理页面
		selenium.click("link=审核");
		selenium.waitForPageToLoad("10000");
		assertPageTitle("北京市电子行政监察平台-数据报送", onPage("报送处理页面"));
		// 验证页面元素
		String[] approvalPageElementTexts = {
				"报送",
				"任务信息",
				"报送任务名称",
				"任务编号",
				"状态",
				"报送开始日期",
				"报送结束日期",
				"发起人",
				"报送方式",
				"报送要求",
				"相关文件",
				"报送内容",
				"报送说明",
				};
		verifyPresenceOfTexts(approvalPageElementTexts, onPage("报送处理页面"));
	
	}
	
	@Test
	public void testReportingQueryPage() {
		// 登录
		selenium.open("/OA/");
		selenium.type("j_username", "admin");
		selenium.type("j_password", "admin");
		selenium.click("loginBtn");
		selenium.waitForPageToLoad("10000");

		// 进入列表页面
		selenium.click("link=报送查询");
		selenium.waitForPageToLoad("10000");
		assertPageTitle("北京市电子行政监察平台-数据报送查询", onPage("报送查询列表页面"));
		// 等待列表刷新完成
		waitForAppearanceOfElement("//div[@id='dataTable']/table", 10000);
		// 验证页面元素
		String[] listPageElementTexts = {
				"报送查询",
				"任务编号",
				"报送任务名称",
				"创建人",
				"任务计划结束日期",
				"重要度",
				"任务状态",
				"首页", "尾页",
				};
		verifyPresenceOfTexts(listPageElementTexts, onPage("报送查询列表页面"));
	
		// 进入详细页面
		selenium.click("//div[@id='dataTable']/table//link");
		selenium.waitForPopUp("", "10000");
		selenium.selectPopUp("");
		assertPageTitle("北京市电子行政监察平台-数据报送详细信息", "报送任务详细页面");
		// 验证页面元素
		String[] detailsPageElementTexts = {
				"报送任务信息",
				"报送任务名称",
				"任务编号",
				"任务类型",
				"任务开始日期",
				"任务计划结束日期",
				"重要度",
				"任务状态",
				"任务要求",
				"报送人",
				"报送方式",
				"报送要求",
				};
		verifyPresenceOfTexts(detailsPageElementTexts, onPage("报送任务详细页面"));

	}

}
